Skip to content

Improve the Aspire VS Code extension funnel#17898

Open
adamint wants to merge 22 commits into
microsoft:mainfrom
adamint:adamint/vscode-extension-growth
Open

Improve the Aspire VS Code extension funnel#17898
adamint wants to merge 22 commits into
microsoft:mainfrom
adamint:adamint/vscode-extension-growth

Conversation

@adamint

@adamint adamint commented Jun 4, 2026

Copy link
Copy Markdown
Member

Description

Improve the VS Code extension path for users who open an Aspire app in VS Code.

The Marketplace README now shows the AppHost discovery -> run/debug -> dashboard workflow with focused TypeScript AppHost screenshots. The extension also emits bounded telemetry for the first-run funnel so we can see where users drop off:

  • activation with workspace shape
  • CLI availability checks for command and debug gates
  • AppHost discovery source, result, duration, language bucket, and candidate counts
  • AppHost launch request/result, mode, command, language bucket, and non-sensitive error kind
  • running AppHosts view state, errors, resource counts, and workspace candidate counts

All new telemetry values are coarse enums/counts. Paths, command output, error messages, and user content are not emitted.

User-facing usage

Users can open an Aspire repo in VS Code, run Aspire: Configure launch.json file, press F5, then use the Aspire view and dashboard while the app runs. The Marketplace page now shows that flow directly.

Screenshot evidence

These are real captures from this branch. The VS Code and dashboard shots now come from the same clean C# + Node Aspire E2E workspace using the repo-built Aspire CLI. The debug shot is paused on a real breakpoint I set in Program.cs; the call stack shows the AppHost, C# worker, and Node debug sessions attached.

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Validation

  • ./build.sh from extension/ (Build completed successfully!)
  • corepack yarn run compile-tests && corepack yarn run lint
  • corepack yarn run unit-test -- --config .vscode-test-pr17898.mjs with a short VS Code user-data path (966 passing, 1 pending)
  • PR tester proof lane: VSIX build, packageSurface E2E (7/7), and appHostTree E2E (4/4)
  • Focused PR Improve the Aspire VS Code extension funnel #17898 debugger evidence E2E: ASPIRE_EXTENSION_E2E_SHARD=pr17898-debugger-evidence ... corepack yarn run test:e2e (1/1, captures AppHost view, dashboard, and real breakpoint from the same C# + Node project)
  • Latest upstream/main merged into this branch
  • 4-lane automated review panel: architecture/simplicity, edge/regression, Aspire domain review, and PR tester proof

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 4, 2026 03:22
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17898

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17898"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the Aspire VS Code extension’s first-run “happy path” funnel by (1) updating the Marketplace README to clearly show AppHost discovery → run/debug → dashboard, and (2) adding new bounded, coarse-grained telemetry events to understand where users drop off (activation/workspace shape, CLI gate checks, AppHost discovery/launch, and running AppHosts view state).

Changes:

  • Add new telemetry event catalog entries for activation, CLI availability checks, AppHost discovery results, AppHost launch requested/result, and additional running AppHosts view signals.
  • Emit the new telemetry from activation, CLI gating, AppHost discovery, AppHost launch, and the running AppHosts view.
  • Update extension README with an animated walkthrough and focused screenshots aligned to the intended user flow.
Show a summary per file
File Description
extension/telemetry.json Registers new telemetry event/property classifications for the funnel stages.
extension/src/views/AppHostsViewTelemetry.ts Adds workspace AppHost state/error/candidate-count signals when the view is shown.
extension/src/utils/workspace.ts Adds telemetry for CLI availability checks (gate operation + duration).
extension/src/utils/telemetryRegistry.ts Extends the typed telemetry schema for the new events/properties/measurements.
extension/src/utils/appHostDiscovery.ts Emits discovery result telemetry (source/outcome/duration/candidate counts/language summary).
extension/src/services/AppHostLaunchService.ts Emits launch requested/result telemetry (mode/command/language/outcome/error kind + duration).
extension/src/extension.ts Emits activation telemetry and plumbs CLI-gate operation labels.
extension/src/debugger/AspireDebugConfigurationProvider.ts Labels the debug-time CLI availability gate for telemetry.
extension/README.md Updates Marketplace-facing docs with the “happy path” walkthrough and screenshots.

Copilot's findings

  • Files reviewed: 9/12 changed files
  • Comments generated: 1

Comment thread extension/src/services/AppHostLaunchService.ts
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Re-running the failed jobs in the CI workflow for this pull request because 1 job was identified as retry-safe transient failures in the CI run attempt.
GitHub was asked to rerun all failed jobs for that attempt, and the rerun is being tracked in the rerun attempt.
The job links below point to the failed attempt jobs that matched the retry-safe transient failure rules.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@adamint adamint left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed with four dedicated passes. I did not find any new, non-duplicate high-confidence issues to raise.

adamint and others added 2 commits June 4, 2026 22:51
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@adamint adamint marked this pull request as ready for review June 5, 2026 18:40
Comment thread extension/README.md Outdated
adamint and others added 3 commits June 5, 2026 14:46
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@davidfowl

Copy link
Copy Markdown
Contributor

Screenshots need more TypeScript, too much C# in here.

@adamint adamint marked this pull request as draft June 11, 2026 18:57
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 11, 2026 20:11
@adamint

adamint commented Jun 11, 2026

Copy link
Copy Markdown
Member Author

Updated the README examples and screenshots/walkthrough to use the TypeScript starter and apphost.mts, including the dashboard/resources view.

@adamint adamint marked this pull request as ready for review June 11, 2026 20:11
@adamint adamint requested a review from davidfowl June 11, 2026 20:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 11/15 changed files
  • Comments generated: 0 new

@adamint adamint marked this pull request as draft June 12, 2026 16:21
@adamint adamint marked this pull request as ready for review June 12, 2026 17:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 11/15 changed files
  • Comments generated: 1

Comment thread extension/src/services/AppHostLaunchService.ts Outdated
@adamint adamint marked this pull request as draft June 18, 2026 02:28
adamint and others added 2 commits June 17, 2026 22:40
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Treat VS Code debug launch cancellation separately from launch errors so telemetry and tree-view error UI do not count provider-cancelled launches as failures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 18, 2026 21:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 16/20 changed files
  • Comments generated: 0 new

Replace the weak README animation with a compact static storyboard, use packaged README media paths so PR and marketplace rendering are reliable, and keep launch failures visible when VS Code declines to start an Aspire debug session.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@adamint adamint marked this pull request as ready for review June 20, 2026 03:56
Copilot AI review requested due to automatic review settings June 20, 2026 03:56
adamint and others added 2 commits June 19, 2026 23:58
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove branch-specific workspace names and temporary paths from the README screenshots so the Marketplace visuals show the intended generic Aspire workflow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 16/20 changed files
  • Comments generated: 0 new

Remove the happy-path storyboard image and update the debug-session screenshot so it clearly shows an AppHost paused at a breakpoint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 20, 2026 04:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 16/19 changed files
  • Comments generated: 1

Comment thread extension/src/extension.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

adamint and others added 3 commits June 20, 2026 00:39
Replace the README screenshots with real cropped VS Code captures and address Copilot review feedback by reusing shared telemetry error classification.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 20, 2026 19:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 18/21 changed files
  • Comments generated: 0 new

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@adamint

adamint commented Jun 20, 2026

Copy link
Copy Markdown
Member Author

(automated comment)

Post-fix pass on the latest head b10ba7dad097ceaf32c465c6dcdb533befa730e5.

Review feedback checked:

  • Screenshot feedback had already been addressed with TypeScript AppHost screenshots and README updates.
  • Prior inline comments for telemetry fs.stat, duplicate launch error classification, and unused imports are addressed; the two remaining unresolved outdated threads are now resolved.
  • The review panel found one additional coverage gap for runningapphostsview/shown; fixed by adding appHostsViewTelemetry.test.ts for all workspace AppHost state buckets.

Validation:

  • ./build.sh from extension/ passed.
  • corepack yarn run compile-tests && corepack yarn run lint passed.
  • corepack yarn run unit-test -- --config .vscode-test-pr17898.mjs with a short VS Code user-data path: 966 passing, 1 pending.
  • PR tester proof: VSIX built, packageSurface E2E 7/7, appHostTree E2E 4/4.
  • Screenshots are linked in the PR description from branch resources; no new video was needed because the changed proof is telemetry/test/E2E-log based.

Final review orchestration lanes:

  • Architecture/simplicity: claude-opus-4.8, high — no must-fix issues.
  • Edge cases/regressions: gpt-5.5, high — no high-confidence regressions.
  • Aspire domain code review: claude-opus-4.8, high — no high-confidence issues after the new telemetry-view test.
  • PR tester proof: gpt-5.5, high — pass, with the proof above.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@adamint

adamint commented Jun 20, 2026

Copy link
Copy Markdown
Member Author

(automated comment)

Updated the screenshot evidence from one C# + Node Aspire project:

The debugger shot is a real breakpoint hit in Program.cs with AppHost, C# worker, and Node debug sessions attached. Validation: focused E2E proof passed, 1/1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants